package fr.bugtracker.commun.exception;

import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;

import org.eclipse.persistence.exceptions.DatabaseException;

import fr.bugtracker.commun.outils.UtilsLogger;

/**
 * Interceptor pour la gestion des exceptions EJB
 * @author l.parrot1
 */
public class ExceptionInterceptor {

	/**
	 * Constructeur de la classe <code>ExceptionInterceptor</code>.
	 */
	public ExceptionInterceptor() {
	}

	/**
	 * Methode pour la gestion des exceptions EJB
	 * @param ctx le context
	 * @return {@link Object} l'objet
	 * @throws Throwable -
	 */
	@AroundInvoke
	public Object exceptionInterceptor(InvocationContext ctx) throws Throwable {
		try {
			return ctx.proceed();
		} catch (DatabaseException e) {
			UtilsLogger.logException(e);
		} catch (Throwable e) {
			throw e;
		}
		return null;
	}
}
